/**
 * @author: Hejh(3010733382@qq.com)
 * @description: 本文件用于设置各种错误响应码实体
 */
/**
 * @author: Hejh(3010733382@qq.com)
 * @description: 创建错误实体
 * @param {*} code
 * @param {*} message
 */
function genError(code, message) {
  let error = {}
  error.code = code
  error.message = message
  return error
}

// 用户模块错误码
const ERROR_USER_CODE = {
  EXAM_HISTORY_ID_ERROR: genError(110019, '考试记录ID有误'),
  EXAM_HISTORY_NAME_ERROR: genError(110020, '考试记录名称重复'),
  EXAM_HISTORY_CREATE_ERROR: genError(130021, '考试记录创建失败'),
  EXAM_HISTORY_UPDATE_ERROR: genError(130022, '考试记录更新失败'),
  EXAM_HISTORY_DEL_ERROR: genError(130023, '考试记录删除失败'),
  EXAM_HISTORY_SORT_ERROR: genError(130024, '考试记录排序失败'),
  QUESTION_FAV_ID_ERROR: genError(110019, '题目收藏ID有误'),
  QUESTION_FAV_NAME_ERROR: genError(110020, '题目收藏名称重复'),
  QUESTION_FAV_CREATE_ERROR: genError(130021, '题目收藏创建失败'),
  QUESTION_FAV_UPDATE_ERROR: genError(130022, '题目收藏更新失败'),
  QUESTION_FAV_DEL_ERROR: genError(130023, '题目收藏删除失败'),
  QUESTION_FAV_SORT_ERROR: genError(130024, '题目收藏排序失败'),
  USER_ACTIVE_EXAM_ID_ERROR: genError(110019, '用户激活码ID有误'),
  // USER_ACTIVE_EXAM_NAME_ERROR: genError(110020, '用户激活码名称重复'),
  USER_ACTIVE_EXAM_CREATE_ERROR: genError(130021, '用户激活码创建失败'),
  USER_ACTIVE_EXAM_USED_ERROR: genError(130025, '激活码已被使用'),
  USER_ACTIVE_EXAM_ISACTIVE_ERROR: genError(130026, '用户已激活，无需再次激活'),
  // USER_ACTIVE_EXAM_UPDATE_ERROR: genError(130022, '用户激活码更新失败'),
  USER_ACTIVE_EXAM_DEL_ERROR: genError(130023, '用户激活码删除失败'),
  USER_ACTIVE_EXAM_SORT_ERROR: genError(130024, '用户激活码排序失败'),
  ACTIVE_CODE_ID_ERROR: genError(110019, '激活码ID有误'),
  // ACTIVE_CODE_NAME_ERROR: genError(110020, '激活码名称重复'),
  ACTIVE_CODE_CREATE_ERROR: genError(130021, '激活码创建失败'),
  // ACTIVE_CODE_UPDATE_ERROR: genError(130022, '激活码更新失败'),
  ACTIVE_CODE_DEL_ERROR: genError(130023, '激活码删除失败'),
  ACTIVE_CODE_SORT_ERROR: genError(130024, '激活码排序失败'),
  QUESTION_ID_ERROR: genError(110019, '题目ID有误'),
  QUESTION_NAME_ERROR: genError(110020, '题目名称重复'),
  QUESTION_CREATE_ERROR: genError(130021, '题目创建失败'),
  QUESTION_UPDATE_ERROR: genError(130022, '题目更新失败'),
  QUESTION_DEL_ERROR: genError(130023, '题目删除失败'),
  QUESTION_SORT_ERROR: genError(130024, '题目排序失败'),
  PAPER_ID_ERROR: genError(110019, '试卷ID有误'),
  PAPER_NAME_ERROR: genError(110020, '试卷名称重复'),
  PAPER_CREATE_ERROR: genError(130021, '试卷创建失败'),
  PAPER_UPDATE_ERROR: genError(130022, '试卷更新失败'),
  PAPER_DEL_ERROR: genError(130023, '试卷删除失败'),
  PAPER_SORT_ERROR: genError(130024, '试卷排序失败'),
  EXAM_ID_ERROR: genError(110019, '考试ID有误'),
  EXAM_NAME_ERROR: genError(110020, '考试名称重复'),
  EXAM_CREATE_ERROR: genError(130021, '考试创建失败'),
  EXAM_UPDATE_ERROR: genError(130022, '考试更新失败'),
  EXAM_DEL_ERROR: genError(130023, '考试删除失败'),
  EXAM_SORT_ERROR: genError(130024, '考试排序失败'),
  CHAPTER_ID_ERROR: genError(110019, '章节ID有误'),
  CHAPTER_NAME_ERROR: genError(110020, '章节名称重复'),
  CHAPTER_CREATE_ERROR: genError(130021, '章节创建失败'),
  CHAPTER_UPDATE_ERROR: genError(130022, '章节更新失败'),
  CHAPTER_DEL_ERROR: genError(130023, '章节删除失败'),
  CHAPTER_SORT_ERROR: genError(130024, '章节排序失败'),
  PARAMS_SCHEMA_ERROR: genError(110000, '参数格式错误'),
  USERNAME_DUMP_ERROR: genError(120001, '用户名被占用'),
  EMAIL_DUMP_ERROR: genError(120002, '邮箱被占用'),
  PHONE_DUMP_ERROR: genError(120003, '手机号被占用'),
  USERNAME_PASSWORD_ERROR: genError(120004, '用户名和密码不匹配'),
  LOGIN_FORBID: genError(140005),
  CREATE_USER_ERROR: genError(130006, '用户创建失败'),
  USER_TOKEN_ERROR: genError(110007, '无效的token'),
  UPDATE_USERINFO_ERROR: genError(130008, '更新用户信息失败'),
  UPDATE_PWD_ERROR: genError(130009, '更新密码失败'),
  REGISTER_CLOSE_ERROR: genError(190010, '注册功能未开放'),
  USER_ID_ERROR: genError(110027, '用户ID有误'),
  USER_STATUS_ERROR: genError(130032, '设置用户账号状态失败'),
  USER_DEL_ERROR: genError(130033, '删除用户失败'),
  USER_SET_ROLE_ERROR: genError(130057, '设置用户系统角色失败'),
  USER_SET_OPTION_ERROR: genError(130059, '用户配置更新失败'),
  USER_SET_NICKNAME_ERROR: genError(130060, '用户设置昵称失败'),
  USER_SET_EMAIL_ERROR: genError(130061, '用户设置邮箱失败'),
  NICKNAME_DUMP_ERROR: genError(130062, '昵称不能重复'),
  EMAIL_NOT_EXIST_ERROR: genError(130063, '邮箱不存在'),
  CODE_SEND_ERROR: genError(130064, '发送验证码失败'),
  CODE_SEND_LIMIT_ERROR: genError(130065, '验证码在一分钟只能发送一次'),
  CODE_MSG_ERROR: genError(110066, '验证码失效'),
  SLIDE_CODE_GEN_ERROR: genError(130067, '滑块验证码获取失败')
}

// 文件模板错误码
const ERROR_SOURCE_CODE = {
  FILENAME_DUMP_ERROR: genError(220003, '用户文件名重复'),
  UPLOAD_FILE_ERROR: genError(230013, '上传文件失败'),
  FILE_CHUNK_INFO_NO_ERROR: genError(220014, '请先进行文件协商'),
  FILE_CHUNK_ERROR: genError(220015, '上传的分片不合法'),
  FILE_COMBINE_ERROR: genError(230022, '文件合并失败')
}

// 系统模块错误码
const ERROR_SYSTEM_CODE = {
  SYSTEM_ERROR: genError(999999, '系统异常'),
  TOO_MANY_REQS: genError(999998, '请求过于频繁'),
  PARAMS_SCHEMA_ERROR: genError(910000, '参数格式错误'),
  SYSTEM_OPTION_ERROR: genError(930001), // 系统配置项更新错误
  DATE_FORMAT_ERROR: genError(910002, '日期格式错误'),
  ROUTER_NOT_MATCH_ERROR: genError(910003, '路由不存在'),
  PERMISSION_ERROR: genError(940004, '系统权限不足')
}

module.exports = {
  ERROR_USER_CODE,
  ERROR_SYSTEM_CODE,
  ERROR_SOURCE_CODE
}
